1. Field
Certain aspects of the present disclosure generally relate to neural system engineering and, more particularly, to systems and methods for compiling network descriptions to multiple platforms in a neural network.
2. Background
An artificial neural network, which may comprise an interconnected group of artificial neurons (i.e., neuron models), is a computational device or represents a method to be performed by a computational device. Artificial neural networks may have corresponding structure and/or function in biological neural networks. However, artificial neural networks may provide innovative and useful computational techniques for certain applications in which traditional computational techniques are cumbersome, impractical, or inadequate.
Users and researchers of spiking neural networks rely on the ability to simulate these networks on a number of different platforms. Oftentimes, the size of the network dictates that to be simulated in a reasonable amount of time, specialized hardware (such as digital signal processors (DSPs) or graphics processing units (GPUs)) is employed. Hence, for real-time simulation of a large variety of networks, the platforms may range from general-purpose desktop computers having general-purpose (CPUs) to highly specialized, application-specific integrated circuits (ASICs).
The simulation of spiking neural networks in real-time depends on the size and complexity of the network. As a network grows and is modified, the computational specifications change. For example, a spiking neural network may grow in size until it is no longer feasible to simulate the network on a desktop computer. At this point, the researcher may choose to convert the source code describing the network so that it may be simulated on more specialized hardware and circuitry, such as a DSP or GPU.